
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure
-- --------------------------------------------------
-- Date Created: 01/27/2014 22:58:56
-- Generated from EDMX file: C:\Programming\C#_Projects\KinoDB\KinoDB\Models\KinoDBModell.edmx
-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF;
GO
USE [Kino];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO

-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[FK_FilmVorstellung]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Vorstellungen] DROP CONSTRAINT [FK_FilmVorstellung];
GO
IF OBJECT_ID(N'[dbo].[FK_KinosaalVorstellung]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Vorstellungen] DROP CONSTRAINT [FK_KinosaalVorstellung];
GO
IF OBJECT_ID(N'[dbo].[FK_ReservierungKunde]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Käufe_Vorverkauf] DROP CONSTRAINT [FK_ReservierungKunde];
GO
IF OBJECT_ID(N'[dbo].[FK_KaufVorstellung]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Käufe] DROP CONSTRAINT [FK_KaufVorstellung];
GO
IF OBJECT_ID(N'[dbo].[FK_HauptdarstellerFilm_Hauptdarsteller]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[HauptdarstellerFilm] DROP CONSTRAINT [FK_HauptdarstellerFilm_Hauptdarsteller];
GO
IF OBJECT_ID(N'[dbo].[FK_HauptdarstellerFilm_Film]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[HauptdarstellerFilm] DROP CONSTRAINT [FK_HauptdarstellerFilm_Film];
GO
IF OBJECT_ID(N'[dbo].[FK_MitarbeiterKinosaal_Mitarbeiter]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[MitarbeiterKinosaal] DROP CONSTRAINT [FK_MitarbeiterKinosaal_Mitarbeiter];
GO
IF OBJECT_ID(N'[dbo].[FK_MitarbeiterKinosaal_Kinosaal]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[MitarbeiterKinosaal] DROP CONSTRAINT [FK_MitarbeiterKinosaal_Kinosaal];
GO
IF OBJECT_ID(N'[dbo].[FK_MitarbeiterDienst]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Dienste] DROP CONSTRAINT [FK_MitarbeiterDienst];
GO
IF OBJECT_ID(N'[dbo].[FK_Vorverkauf_inherits_Kauf]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Käufe_Vorverkauf] DROP CONSTRAINT [FK_Vorverkauf_inherits_Kauf];
GO
IF OBJECT_ID(N'[dbo].[FK_Kunde_inherits_Person]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Personen_Kunde] DROP CONSTRAINT [FK_Kunde_inherits_Person];
GO
IF OBJECT_ID(N'[dbo].[FK_Mitarbeiter_inherits_Person]', 'F') IS NOT NULL
    ALTER TABLE [dbo].[Personen_Mitarbeiter] DROP CONSTRAINT [FK_Mitarbeiter_inherits_Person];
GO

-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------

IF OBJECT_ID(N'[dbo].[Filme]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Filme];
GO
IF OBJECT_ID(N'[dbo].[Vorstellungen]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Vorstellungen];
GO
IF OBJECT_ID(N'[dbo].[Kinosäle]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Kinosäle];
GO
IF OBJECT_ID(N'[dbo].[Käufe]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Käufe];
GO
IF OBJECT_ID(N'[dbo].[Hauptdarsteller]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Hauptdarsteller];
GO
IF OBJECT_ID(N'[dbo].[Personen]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Personen];
GO
IF OBJECT_ID(N'[dbo].[Dienste]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Dienste];
GO
IF OBJECT_ID(N'[dbo].[Käufe_Vorverkauf]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Käufe_Vorverkauf];
GO
IF OBJECT_ID(N'[dbo].[Personen_Kunde]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Personen_Kunde];
GO
IF OBJECT_ID(N'[dbo].[Personen_Mitarbeiter]', 'U') IS NOT NULL
    DROP TABLE [dbo].[Personen_Mitarbeiter];
GO
IF OBJECT_ID(N'[dbo].[HauptdarstellerFilm]', 'U') IS NOT NULL
    DROP TABLE [dbo].[HauptdarstellerFilm];
GO
IF OBJECT_ID(N'[dbo].[MitarbeiterKinosaal]', 'U') IS NOT NULL
    DROP TABLE [dbo].[MitarbeiterKinosaal];
GO

-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------

-- Creating table 'Filme'
CREATE TABLE [dbo].[Filme] (
    [Id] int IDENTITY(1,1) NOT NULL,
    [Titel] nvarchar(max)  NOT NULL,
    [Länge] int  NOT NULL,
    [FSK] int  NOT NULL,
    [Beschreibung] nvarchar(max)  NULL
);
GO

-- Creating table 'Vorstellungen'
CREATE TABLE [dbo].[Vorstellungen] (
    [Id] int IDENTITY(1,1) NOT NULL,
    [Startzeit] datetime  NOT NULL,
    [Kartenpreis] float  NOT NULL,
    [Film_Id] int  NOT NULL,
    [Kinosaal_Id] int  NOT NULL
);
GO

-- Creating table 'Kinosäle'
CREATE TABLE [dbo].[Kinosäle] (
    [Id] int IDENTITY(1,1) NOT NULL,
    [Name] nvarchar(max)  NOT NULL,
    [Sitzplatzzahl] int  NOT NULL
);
GO

-- Creating table 'Käufe'
CREATE TABLE [dbo].[Käufe] (
    [Id] int IDENTITY(1,1) NOT NULL,
    [Platzanzahl] int  NOT NULL,
    [Vorstellung_Id] int  NOT NULL
);
GO

-- Creating table 'Hauptdarsteller'
CREATE TABLE [dbo].[Hauptdarsteller] (
    [Id] int IDENTITY(1,1) NOT NULL,
    [Name] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'Personen'
CREATE TABLE [dbo].[Personen] (
    [Id] int IDENTITY(1,1) NOT NULL,
    [Name] nvarchar(max)  NOT NULL,
    [Geburtsdatum] datetime  NOT NULL,
    [Adresse] nvarchar(max)  NOT NULL
);
GO

-- Creating table 'Dienste'
CREATE TABLE [dbo].[Dienste] (
    [Id] int IDENTITY(1,1) NOT NULL,
    [Startzeit] datetime  NOT NULL,
    [Endzeit] datetime  NOT NULL,
    [Mitarbeiter_Id] int  NOT NULL
);
GO

-- Creating table 'Käufe_Vorverkauf'
CREATE TABLE [dbo].[Käufe_Vorverkauf] (
    [Reservierungsdatum] datetime  NOT NULL,
    [Id] int  NOT NULL,
    [Kunde_Id] int  NOT NULL
);
GO

-- Creating table 'Personen_Kunde'
CREATE TABLE [dbo].[Personen_Kunde] (
    [PaypalAccount] nvarchar(max)  NOT NULL,
    [Id] int  NOT NULL
);
GO

-- Creating table 'Personen_Mitarbeiter'
CREATE TABLE [dbo].[Personen_Mitarbeiter] (
    [Stundenlohn] float  NOT NULL,
    [Id] int  NOT NULL
);
GO

-- Creating table 'HauptdarstellerFilm'
CREATE TABLE [dbo].[HauptdarstellerFilm] (
    [Hauptdarsteller_Id] int  NOT NULL,
    [Film_Id] int  NOT NULL
);
GO

-- Creating table 'MitarbeiterKinosaal'
CREATE TABLE [dbo].[MitarbeiterKinosaal] (
    [Mitarbeiter_Id] int  NOT NULL,
    [Kinosaal_Id] int  NOT NULL
);
GO

-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------

-- Creating primary key on [Id] in table 'Filme'
ALTER TABLE [dbo].[Filme]
ADD CONSTRAINT [PK_Filme]
    PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [Id] in table 'Vorstellungen'
ALTER TABLE [dbo].[Vorstellungen]
ADD CONSTRAINT [PK_Vorstellungen]
    PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [Id] in table 'Kinosäle'
ALTER TABLE [dbo].[Kinosäle]
ADD CONSTRAINT [PK_Kinosäle]
    PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [Id] in table 'Käufe'
ALTER TABLE [dbo].[Käufe]
ADD CONSTRAINT [PK_Käufe]
    PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [Id] in table 'Hauptdarsteller'
ALTER TABLE [dbo].[Hauptdarsteller]
ADD CONSTRAINT [PK_Hauptdarsteller]
    PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [Id] in table 'Personen'
ALTER TABLE [dbo].[Personen]
ADD CONSTRAINT [PK_Personen]
    PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [Id] in table 'Dienste'
ALTER TABLE [dbo].[Dienste]
ADD CONSTRAINT [PK_Dienste]
    PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [Id] in table 'Käufe_Vorverkauf'
ALTER TABLE [dbo].[Käufe_Vorverkauf]
ADD CONSTRAINT [PK_Käufe_Vorverkauf]
    PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [Id] in table 'Personen_Kunde'
ALTER TABLE [dbo].[Personen_Kunde]
ADD CONSTRAINT [PK_Personen_Kunde]
    PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [Id] in table 'Personen_Mitarbeiter'
ALTER TABLE [dbo].[Personen_Mitarbeiter]
ADD CONSTRAINT [PK_Personen_Mitarbeiter]
    PRIMARY KEY CLUSTERED ([Id] ASC);
GO

-- Creating primary key on [Hauptdarsteller_Id], [Film_Id] in table 'HauptdarstellerFilm'
ALTER TABLE [dbo].[HauptdarstellerFilm]
ADD CONSTRAINT [PK_HauptdarstellerFilm]
    PRIMARY KEY NONCLUSTERED ([Hauptdarsteller_Id], [Film_Id] ASC);
GO

-- Creating primary key on [Mitarbeiter_Id], [Kinosaal_Id] in table 'MitarbeiterKinosaal'
ALTER TABLE [dbo].[MitarbeiterKinosaal]
ADD CONSTRAINT [PK_MitarbeiterKinosaal]
    PRIMARY KEY NONCLUSTERED ([Mitarbeiter_Id], [Kinosaal_Id] ASC);
GO

-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------

-- Creating foreign key on [Film_Id] in table 'Vorstellungen'
ALTER TABLE [dbo].[Vorstellungen]
ADD CONSTRAINT [FK_FilmVorstellung]
    FOREIGN KEY ([Film_Id])
    REFERENCES [dbo].[Filme]
        ([Id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_FilmVorstellung'
CREATE INDEX [IX_FK_FilmVorstellung]
ON [dbo].[Vorstellungen]
    ([Film_Id]);
GO

-- Creating foreign key on [Kinosaal_Id] in table 'Vorstellungen'
ALTER TABLE [dbo].[Vorstellungen]
ADD CONSTRAINT [FK_KinosaalVorstellung]
    FOREIGN KEY ([Kinosaal_Id])
    REFERENCES [dbo].[Kinosäle]
        ([Id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_KinosaalVorstellung'
CREATE INDEX [IX_FK_KinosaalVorstellung]
ON [dbo].[Vorstellungen]
    ([Kinosaal_Id]);
GO

-- Creating foreign key on [Kunde_Id] in table 'Käufe_Vorverkauf'
ALTER TABLE [dbo].[Käufe_Vorverkauf]
ADD CONSTRAINT [FK_ReservierungKunde]
    FOREIGN KEY ([Kunde_Id])
    REFERENCES [dbo].[Personen_Kunde]
        ([Id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_ReservierungKunde'
CREATE INDEX [IX_FK_ReservierungKunde]
ON [dbo].[Käufe_Vorverkauf]
    ([Kunde_Id]);
GO

-- Creating foreign key on [Vorstellung_Id] in table 'Käufe'
ALTER TABLE [dbo].[Käufe]
ADD CONSTRAINT [FK_KaufVorstellung]
    FOREIGN KEY ([Vorstellung_Id])
    REFERENCES [dbo].[Vorstellungen]
        ([Id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_KaufVorstellung'
CREATE INDEX [IX_FK_KaufVorstellung]
ON [dbo].[Käufe]
    ([Vorstellung_Id]);
GO

-- Creating foreign key on [Hauptdarsteller_Id] in table 'HauptdarstellerFilm'
ALTER TABLE [dbo].[HauptdarstellerFilm]
ADD CONSTRAINT [FK_HauptdarstellerFilm_Hauptdarsteller]
    FOREIGN KEY ([Hauptdarsteller_Id])
    REFERENCES [dbo].[Hauptdarsteller]
        ([Id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [Film_Id] in table 'HauptdarstellerFilm'
ALTER TABLE [dbo].[HauptdarstellerFilm]
ADD CONSTRAINT [FK_HauptdarstellerFilm_Film]
    FOREIGN KEY ([Film_Id])
    REFERENCES [dbo].[Filme]
        ([Id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_HauptdarstellerFilm_Film'
CREATE INDEX [IX_FK_HauptdarstellerFilm_Film]
ON [dbo].[HauptdarstellerFilm]
    ([Film_Id]);
GO

-- Creating foreign key on [Mitarbeiter_Id] in table 'MitarbeiterKinosaal'
ALTER TABLE [dbo].[MitarbeiterKinosaal]
ADD CONSTRAINT [FK_MitarbeiterKinosaal_Mitarbeiter]
    FOREIGN KEY ([Mitarbeiter_Id])
    REFERENCES [dbo].[Personen_Mitarbeiter]
        ([Id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [Kinosaal_Id] in table 'MitarbeiterKinosaal'
ALTER TABLE [dbo].[MitarbeiterKinosaal]
ADD CONSTRAINT [FK_MitarbeiterKinosaal_Kinosaal]
    FOREIGN KEY ([Kinosaal_Id])
    REFERENCES [dbo].[Kinosäle]
        ([Id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_MitarbeiterKinosaal_Kinosaal'
CREATE INDEX [IX_FK_MitarbeiterKinosaal_Kinosaal]
ON [dbo].[MitarbeiterKinosaal]
    ([Kinosaal_Id]);
GO

-- Creating foreign key on [Mitarbeiter_Id] in table 'Dienste'
ALTER TABLE [dbo].[Dienste]
ADD CONSTRAINT [FK_MitarbeiterDienst]
    FOREIGN KEY ([Mitarbeiter_Id])
    REFERENCES [dbo].[Personen_Mitarbeiter]
        ([Id])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_MitarbeiterDienst'
CREATE INDEX [IX_FK_MitarbeiterDienst]
ON [dbo].[Dienste]
    ([Mitarbeiter_Id]);
GO

-- Creating foreign key on [Id] in table 'Käufe_Vorverkauf'
ALTER TABLE [dbo].[Käufe_Vorverkauf]
ADD CONSTRAINT [FK_Vorverkauf_inherits_Kauf]
    FOREIGN KEY ([Id])
    REFERENCES [dbo].[Käufe]
        ([Id])
    ON DELETE CASCADE ON UPDATE NO ACTION;
GO

-- Creating foreign key on [Id] in table 'Personen_Kunde'
ALTER TABLE [dbo].[Personen_Kunde]
ADD CONSTRAINT [FK_Kunde_inherits_Person]
    FOREIGN KEY ([Id])
    REFERENCES [dbo].[Personen]
        ([Id])
    ON DELETE CASCADE ON UPDATE NO ACTION;
GO

-- Creating foreign key on [Id] in table 'Personen_Mitarbeiter'
ALTER TABLE [dbo].[Personen_Mitarbeiter]
ADD CONSTRAINT [FK_Mitarbeiter_inherits_Person]
    FOREIGN KEY ([Id])
    REFERENCES [dbo].[Personen]
        ([Id])
    ON DELETE CASCADE ON UPDATE NO ACTION;
GO

-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------